\relax 
\catcode`"\active
\ifx\hyper@anchor\@undefined
\global \let \oldcontentsline\contentsline
\gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global \let \oldnewlabel\newlabel
\gdef \newlabel#1#2{\newlabelxx{#1}#2}
\gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\let \contentsline\oldcontentsline
\let \newlabel\oldnewlabel}
\else
\global \let \hyper@last\relax 
\fi

\providecommand*\HyPL@Entry[1]{}
\HyPL@Entry{0 << /S /D >> }
\newlabel{fig:logo}{{}{1}{\relax }{}{}}
\select@language{italian}
\@writefile{toc}{\select@language{italian}}
\@writefile{lof}{\select@language{italian}}
\@writefile{lot}{\select@language{italian}}
\HyPL@Entry{1 << /S /D >> }
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduzione}{4}{chapter.1}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{fig:schema}{{1}{4}{Introduzione\relax }{chapter.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {1.1}Una panoramica generale.}{5}{section.1.1}}
\@writefile{toc}{\contentsline {section}{\numberline {1.2}La rete Mini-KaZaA.}{5}{section.1.2}}
\@writefile{toc}{\contentsline {chapter}{\numberline {2}Bootstrap Server}{6}{chapter.2}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Il Bootstrap server in generale}{6}{section.2.1}}
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Entriamo nel dettaglio}{6}{section.2.2}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}La classe NodeInfo}{7}{section.2.3}}
\newlabel{sec:nodeinfo}{{2.3}{7}{La classe NodeInfo\relax }{section.2.3}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces Interfaccia grafica del Bootstrap server}}{8}{figure.2.1}}
\newlabel{fig:bss_grafica}{{2.1}{8}{Interfaccia grafica del Bootstrap server\relax }{figure.2.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.4}L'interfaccia grafica.}{8}{section.2.4}}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Mini-KaZaA Client}{10}{chapter.3}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Mini-KaZaA Client in generale}{10}{section.3.1}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Il codice di Mini-KaZaA client}{10}{section.3.2}}
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Le strutture dati comuni}{11}{section.3.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}NodeConfig.java}{12}{subsection.3.3.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Query.java}{12}{subsection.3.3.2}}
\newlabel{sec:query}{{3.3.2}{12}{Query.java\relax }{subsection.3.3.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}Answer.java}{13}{subsection.3.3.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}SearchField.java}{14}{subsection.3.3.4}}
\newlabel{sec:searchField_class}{{3.3.4}{14}{SearchField.java\relax }{subsection.3.3.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.5}Download.java}{14}{subsection.3.3.5}}
\newlabel{sec:download_class}{{3.3.5}{14}{Download.java\relax }{subsection.3.3.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.6}DownloadRequest.java}{15}{subsection.3.3.6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.7}DownloadResponse.java}{15}{subsection.3.3.7}}
\@writefile{toc}{\contentsline {section}{\numberline {3.4}Il percorso di una query}{15}{section.3.4}}
\@writefile{toc}{\contentsline {section}{\numberline {3.5}La classe SupernodeList.java}{16}{section.3.5}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Paradigma Observable - Observer}}{19}{figure.3.1}}
\newlabel{fig:observable}{{3.1}{19}{Paradigma Observable - Observer\relax }{figure.3.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.6}Il paradigma Observable-Observer}{19}{section.3.6}}
\newlabel{sec:obs-obs}{{3.6}{19}{Il paradigma Observable-Observer\relax }{section.3.6}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.7}Ping dei nodi}{20}{section.3.7}}
\newlabel{sec:ping}{{3.7}{20}{Ping dei nodi\relax }{section.3.7}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.8}Invio di file e divisione del file in parti.}{22}{section.3.8}}
\newlabel{sec:download_tcp}{{3.8}{22}{Invio di file e divisione del file in parti}{section.3.8}{}}
\newlabel{sec:scambio}{{3.8}{22}{Invio di file e divisione del file in parti}{section.3.8}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.9}La grafica del client Mini-KaZaA}{24}{section.3.9}}
\newlabel{sec:grafica}{{3.9}{24}{La grafica del client Mini-KaZaA\relax }{section.3.9}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces L'interfaccia grafica principale del client.}}{25}{figure.3.2}}
\newlabel{fig:mini_kazaa_client}{{3.2}{25}{L'interfaccia grafica principale del client}{figure.3.2}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Ordinary Node}{27}{chapter.4}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {4.1}Le classi del package ordinarynode}{27}{section.4.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}OrdinarynodeFiles.java}{27}{subsection.4.1.1}}
\newlabel{sec:on_files}{{4.1.1}{27}{OrdinarynodeFiles.java\relax }{subsection.4.1.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{addFiles}{28}{section*.1}}
\newlabel{sec:on_files_add}{{4.1.1}{28}{addFiles\relax }{section*.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{removeFiles}{28}{section*.2}}
\@writefile{toc}{\contentsline {subsubsection}{searchFiles}{29}{section*.3}}
\newlabel{sec:on_searchFiles}{{4.1.1}{29}{searchFiles\relax }{section*.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.2}OrdinarynodeDownloadMonitor.java}{30}{subsection.4.1.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.3}OrdinarynodeFoundList.java}{31}{subsection.4.1.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.4}OrdinarynodeQuestionList.java}{32}{subsection.4.1.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.5}OrdinarynodeFriendRequest.java}{33}{subsection.4.1.5}}
\newlabel{sec:friend_request}{{4.1.5}{33}{OrdinarynodeFriendRequest.java\relax }{subsection.4.1.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.2}Il cuore di un Ordinary Node}{33}{section.4.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Engine}{34}{subsection.4.2.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}ON in ascolto sul socket TCP}{35}{subsection.4.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}ON e RMI}{37}{subsection.4.2.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.4}Scelta del SN al quale connettersi}{39}{subsection.4.2.4}}
\newlabel{sec:scelta_sn}{{4.2.4}{39}{Scelta del SN al quale connettersi\relax }{subsection.4.2.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.5}Condivisione di file}{41}{subsection.4.2.5}}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Super Node}{42}{chapter.5}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {5.1}L'interfaccia per le callback}{42}{section.5.1}}
\@writefile{toc}{\contentsline {section}{\numberline {5.2}Indicizzamento dei file degli ON collegati}{42}{section.5.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.1}addNewOnFileList}{43}{subsection.5.2.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.2}searchFiles}{43}{subsection.5.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.3}Altri metodi}{43}{subsection.5.2.3}}
\@writefile{toc}{\contentsline {section}{\numberline {5.3}Smistamento delle query}{44}{section.5.3}}
\newlabel{sec:smistamento_delle_query}{{5.3}{44}{Smistamento delle query\relax }{section.5.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.4}Il cuore di un Super Node}{45}{section.5.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.1}Engine}{46}{subsection.5.4.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.2}SN e RMI}{47}{subsection.5.4.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.3}SN in ascolto su socket TCP}{49}{subsection.5.4.3}}
\@writefile{toc}{\contentsline {chapter}{\numberline {6}Il package Util}{52}{chapter.6}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {6.1}Descrittore di file custom}{52}{section.6.1}}
\newlabel{sec:mk_filedescriptor}{{6.1}{52}{Descrittore di file custom\relax }{section.6.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {6.2}Calcolo dell'md5}{53}{section.6.2}}
\newlabel{sec:md5}{{6.2}{53}{Calcolo dell'md5\relax }{section.6.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {6.3}Manipolazione delle stringhe}{54}{section.6.3}}
\@writefile{toc}{\contentsline {subsubsection}{isInetAddress}{54}{section*.4}}
\@writefile{toc}{\contentsline {subsubsection}{getRappresentableSize}{55}{section*.5}}
\@writefile{toc}{\contentsline {section}{\numberline {6.4}Interazione con i file e con i metadati}{56}{section.6.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.1}getFilesIntoDirectory}{56}{subsection.6.4.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.2}transformFileToMKFile}{57}{subsection.6.4.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.3}saveMySharedFiles}{57}{subsection.6.4.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.4}loadMySharedFiles}{58}{subsection.6.4.4}}
\@writefile{toc}{\contentsline {chapter}{\numberline {7}Il package di grafica}{59}{chapter.7}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{chap:gui_package}{{7}{59}{Il package di grafica\relax }{chapter.7}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7.1}Il campo di testo}{59}{section.7.1}}
\@writefile{toc}{\contentsline {section}{\numberline {7.2}I bottoni}{59}{section.7.2}}
\@writefile{lof}{\contentsline {figure}{\numberline {7.1}{\ignorespaces La grafica con le librerie Swing.}}{60}{figure.7.1}}
\newlabel{fig:swing_diagram}{{7.1}{60}{La grafica con le librerie Swing}{figure.7.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7.3}Gestore degli eventi}{60}{section.7.3}}
\@writefile{toc}{\contentsline {section}{\numberline {7.4}Le tabelle di Java}{60}{section.7.4}}
\@writefile{toc}{\contentsline {chapter}{\numberline {8}Scelte di progetto e cenni di teoria}{62}{chapter.8}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{chap:scelte_di_progetto}{{8}{62}{Scelte di progetto e cenni di teoria\relax }{chapter.8}{}}
\@writefile{toc}{\contentsline {section}{\numberline {8.1}Java Bean}{62}{section.8.1}}
\newlabel{sec:java_bean}{{8.1}{62}{Java Bean\relax }{section.8.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {8.2}UML Logica}{62}{section.8.2}}
\newlabel{sec:UML_logica}{{8.2}{62}{UML Logica\relax }{section.8.2}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {8.1}{\ignorespaces Il diagramma UML che rappresenta la logica di Mini-KaZaA.}}{63}{figure.8.1}}
\newlabel{fig:logica_uml}{{8.1}{63}{Il diagramma UML che rappresenta la logica di Mini-KaZaA}{figure.8.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {8.3}Classe Wrapper per il socket}{63}{section.8.3}}
\newlabel{sec:wrap_sock}{{8.3}{63}{Classe Wrapper per il socket\relax }{section.8.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {8.4}Il protocollo TCP}{64}{section.8.4}}
\@writefile{toc}{\contentsline {section}{\numberline {8.5}Il protocollo UDP}{64}{section.8.5}}
\@writefile{toc}{\contentsline {section}{\numberline {8.6}Remote Method Invocation}{65}{section.8.6}}
\@writefile{toc}{\contentsline {section}{\numberline {8.7}Utilizzo dei ThreadPool}{65}{section.8.7}}
\newlabel{sec:thread_pool}{{8.7}{65}{Utilizzo dei ThreadPool\relax }{section.8.7}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {8.2}{\ignorespaces Richiesta file.}}{66}{figure.8.2}}
\newlabel{fig:richiesta_file}{{8.2}{66}{Richiesta file}{figure.8.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {8.8}Come funzionano le query}{66}{section.8.8}}
\newlabel{sec:risposte_vuote}{{8.8}{66}{Come funzionano le query\relax }{section.8.8}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {8.3}{\ignorespaces Download.}}{67}{figure.8.3}}
\newlabel{fig:download}{{8.3}{67}{Download}{figure.8.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {8.9}La classe di log}{68}{section.8.9}}
\@writefile{toc}{\contentsline {chapter}{\numberline {A}Manuale d'uso}{69}{appendix.A}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {A.1}Installazione}{69}{section.A.1}}
\@writefile{toc}{\contentsline {section}{\numberline {A.2}Primo avvio}{69}{section.A.2}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.1}{\ignorespaces Pannello di decisione SuperNode o OrdinaryNode}}{70}{figure.A.1}}
\newlabel{fig:what}{{A.1}{70}{Pannello di decisione SuperNode o OrdinaryNode\relax }{figure.A.1}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.2}{\ignorespaces Il pannello di configurazione del SuperNode.}}{70}{figure.A.2}}
\newlabel{fig:configuration}{{A.2}{70}{Il pannello di configurazione del SuperNode}{figure.A.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {A.3}Come funziona}{70}{section.A.3}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.3}{\ignorespaces L' interfaccia principale dell' ordinary node.}}{71}{figure.A.3}}
\newlabel{fig:mini}{{A.3}{71}{L' interfaccia principale dell' ordinary node}{figure.A.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.3.1}Cercare e scaricare un file}{71}{subsection.A.3.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.3.2}Aggiungere un file nella lista dei file condivisi}{71}{subsection.A.3.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.3.3}Controllare lo stato dei download}{71}{subsection.A.3.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.3.4}NetMonitor}{72}{subsection.A.3.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.3.5}Chiudere le schede}{72}{subsection.A.3.5}}
\@writefile{toc}{\contentsline {section}{\numberline {A.4}Consigli degli autori per l' utilizzo}{72}{section.A.4}}
